<?php

namespace App\Http\Controllers\Api;

use App\Exceptions\MyValidateException;
use App\Models\Fav;
use App\Models\Renting;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class FavController extends Controller
{
    //添加收藏记录
    public function add(Request $request){
        try{
            $data=$this->validate($request,[
                'rent_id'=>'required|numeric',
                'fang_id'=>'required|numeric',
                'fav'=>'required|numeric'
            ]);
            //判断是否已经收藏  0添加收藏  1取消收藏
            $fav=$data['fav'];
            unset($data['fav']);
            //对应的用户和对应的房源是否存在，存在则无需添加，不存在才添加
            $model=Fav::where($data)->first();
            //没有收藏
            if($fav==0){
                if(!$model){
                    //没有数据
                    $model=Fav::create($data);
                }
                return ['status'=>0,'msg'=>'添加收藏成功','data'=>$data];
            }
            //永久删除
            $model->forceDelete();

            return ['status'=>0,'msg'=>'取消收藏成功','data'=>''];
        }catch (\Exception $exception){
            throw new MyValidateException('验证错误，请确认',1002);
        }
    }
    //查看是否收藏
    public function bool(Request $request){
        $data=$this->validate($request,[
            'rent_id'=>'required|numeric',
            'fang_id'=>'required|numeric'
        ]);
        //对应的用户和房源记录在收藏表是否存在，不存在则添加，存在不做处理
        $model=Fav::where($data)->first();
        //记录是否存在标识 存在1，不存在0
        $value=1;
        if(!$model){
            $value=0;
        }
        //返回结果 data 没有收藏 0  已经收藏 1
        return ['status'=>0,'msg'=>'成功','data'=>$value];
    }
    //收藏列表
    public function index(Request $request){
        //租客
        $renting=Renting::find($request->get('rent_id'));
        $data=$renting->fangs()->paginate(config('app.pagesize'));
        return ['status'=>0,'msg'=>'成功','data'=>$data];
    }
}
